home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / T U R B O Language / Turbo Pascal V7.0 / DOCDEMO.ZIP / TERMTEST.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-10-30  |  2.1 KB  |  86 lines

  1. {************************************************}
  2. {                                                }
  3. {   Turbo Vision 2.0 Demo                        }
  4. {   Copyright (c) 1992 by Borland International  }
  5. {                                                }
  6. {************************************************}
  7.  
  8. program TermTest;
  9.  
  10. uses Objects, Views, App, Drivers, TextView, Menus;
  11.  
  12. type
  13.   PTermWin = ^TTermWin;
  14.   TTermWin = object(TWindow)
  15.     TermText: Text;
  16.     Terminal: PTerminal;
  17.     constructor Init;
  18.     procedure HandleEvent(var Event: TEvent); virtual;
  19.   end;
  20.   TTermApp = object(TApplication)
  21.     constructor Init;
  22.     procedure InitStatusLine; virtual;
  23.   end;
  24.  
  25. constructor TTermWin.Init;
  26. var
  27.   R: TRect;
  28.   HScrollBar, VScrollBar: PScrollBar;
  29. begin
  30.   Desktop^.GetExtent(R);
  31.   inherited Init(R, 'Terminal test window', wnNoNumber);
  32.   R.Grow(-1, -1);
  33.   HScrollBar := StandardScrollBar(sbHorizontal or sbHandleKeyboard);
  34.   Insert(HScrollBar);
  35.   VScrollBar := StandardScrollBar(sbVertical or sbHandleKeyboard);
  36.   Insert(VScrollBar);
  37.   New(Terminal, Init(R, HScrollBar, VScrollBar, 8192));
  38.   if Application^.ValidView(Terminal) <> nil then
  39.   begin
  40.     AssignDevice(TermText, Terminal);
  41.     Rewrite(TermText);
  42.     Insert(Terminal);
  43.   end;
  44. end;
  45.  
  46. procedure TTermWin.HandleEvent(var Event: TEvent);
  47. begin
  48.   if Event.What and evMouseDown <> 0 then
  49.   begin
  50.     if Event.Buttons and mbLeftButton <> 0 then
  51.       Write(TermText, 'Left  ')
  52.     else Write(TermText, 'Right ');
  53.     Writeln(TermText, '(',Event.Where.X, ',', Event.Where.Y, ')');
  54.   end;
  55.   inherited HandleEvent(Event);
  56. end;
  57.  
  58. constructor TTermApp.Init;
  59. var
  60.   TextWin: PTermWin;
  61. begin
  62.   inherited Init;
  63.   New(TextWin, Init);
  64.   if ValidView(TextWin) <> nil then InsertWindow(TextWin);
  65. end;
  66.  
  67. procedure TTermApp.InitStatusLine;
  68. var
  69.   R: TRect;
  70. begin
  71.   GetExtent(R);
  72.   R.A.Y := R.B.Y - 1;
  73.   StatusLine := New(PStatusLine, Init(R, NewStatusDef(0, $FFFF,
  74.     NewStatusKey('Click mouse in window, or ~Alt+X~ to exit', kbAltX, cmQuit,
  75.     StdStatusKeys(nil)), nil)));
  76. end;
  77.  
  78. var
  79.   TermApp: TTermApp;
  80.  
  81. begin
  82.   TermApp.Init;
  83.   TermApp.Run;
  84.   TermApp.Done;
  85. end.
  86.